在Linux中使用find命令行查找文件

您所在的位置:网站首页 linux 命令搜索文件 在Linux中使用find命令行查找文件

在Linux中使用find命令行查找文件

2024-07-13 09:39:34| 来源: 网络整理| 查看: 265

find是一个基于条件机制递归过滤文件系统中对象的命令。使用find搜索文件系统中的文件或目录。使用-exec标志,可以在同一命令中找到并立即处理文件。

个人推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。

按名称或扩展名查找Linux文件

使用find命令行按名称或扩展名查找特定文件。下面的示例是在/home/username/中查到以.err结尾的所有文件:

代码语言:javascript复制find /home/username/ -name "*.err"常见的Linux查找命令和语法

find 表达式采用以下形式:

代码语言:javascript复制find options starting/path expressionoptions属性将控制find进程的行为和优化方法。starting/path属性将定义find开始过滤的顶级目录。expression属性控制搜索目录层次结构以生成输出的测试。

下面是示例命令:

代码语言:javascript复制find -O3 -L /var/www/ -name "*.html"

此命令启用最大优化级别(-O3)并允许find遵循符号链接(-L)。在/var/www/下面的整个目录树中搜索以.html结尾的文件。

基本示例

命令

描述

find . -name testfile.txt

在当前和子目录中找到名为testfile.txt的文件。

find /home -name *.jpg

在/home中查找所有以.jpg结尾的文件

find . -type f -empty

在当前目录中查找空文件。

find /home -user exampleuser -mtime 7 -iname ".db"

查找用户名为exampleuser的用户在过去7天内修改的所有.db文件(忽略文本大小写)。

查找选项和优化

默认配置find将忽略快捷方式文件。如果要find跟随并返回符号链接,可以将-L选项添加到命令中,如上例所示。

find优化其过滤策略以提高性能。三个可供用户选择的优化级别被指定为-O1,-O2和-O3。在运行所有其他测试之前,-O1优化是默认值并强制find基于文件名进行过滤。

在-02级别上的优化优先考虑文件名过滤器,就像在-01中一样,然后在处理其他更占用资源的条件之前运行所有文件类型过滤。级别-03优化允许find执行最严格的优化,并根据相关费用和成功的可能性重新安排所有测试。

命令

描述

-O1

(默认)首先根据文件名过滤。

-O2

首先是文件名,然后是文件类型。

-O3

允许find根据资源和可能性的有效使用自动重新排序搜索。成功

-maxdepth X

搜索当前目录以及所有X级别的子目录。

-iname

搜索时不考虑文本情况。

-not

仅返回与测试用例不匹配的结果。

-type f

搜索文件。

-type d

搜索目录。

按修改时间查找文件

find命令包含根据上次修改文件的时间过滤目录层次结构的功能:

代码语言:javascript复制find / -name "*conf" -mtime 7 find /home/exampleuser/ -name "*conf" -mtime 3

第一个命令返回整个文件系统中所有文件的列表,这些文件以字符conf结尾并在过去7天内被修改。第二个命令过滤exampleuser用户的主目录,查找名称以conf字符结尾并在前3天内被修改的文件。

使用Grep根据内容查找文件

该find命令只能根据文件名和元数据过滤目录层次结构。如果您需要根据文件内容进行搜索,请使用grep等工具。请考虑以下示例:

代码语言:javascript复制find . -type f -exec grep "example" '{}' \; -print

这将搜索当前目录层次结构(.)中的每个文件(-type f),然后为每个满足条件的文件运行grep“example”命令。匹配的文件打印在屏幕上(-print)。花括号({})是查找匹配结果的占位符。{}用单引号(')括起来,以避免将格式不正确的文件名传递给grep。exec命令以分号(;)结束,分号应该转义(\;),以避免shell对其进行解释。

在执行-exec选项之前,这种命令可能已使用xargs命令生成类似的输出:

代码语言:javascript复制find . -type f -print | xargs grep "example"如何使用查找命令查找和处理文件

exec选项对匹配find表达式的每个对象运行命令。考虑下面的例子::

代码语言:javascript复制find . -name "rc.conf" -exec chmod o+r '{}' \;

这将为命名为rc的文件过滤当前层次结构(.)中的每个对象。运行chmod o+r命令修改查找结果的文件权限。

与-exec一起运行的命令在find进程的根目录中执行。使用-execdir在匹配所在的目录中执行指定的命令。这可能会减轻安全问题,并为某些操作产生更理想的性能。

-exec或-execdir选项运行时没有进一步提示。如果您希望在采取行动之前得到提示,请将-exec替换为-ok或-execdir替换为-okdir。

如何在Linux命令行查找和删除文件

警告 请谨慎使用此选项。

将-delete选项添加到匹配表达式的末尾,这样就能删除所有匹配的文件。请务必确定查找结果与您要删除的文件匹配。

在以下示例中,find查找从当前目录开始并完全递归到目录树中的层次结构中的所有文件。在此示例中,find将删除以.bak字符结尾的所有文件:

代码语言:javascript复制find . -name "*.bak" -delete总结

怎样,你学会了嘛?赶快购买服务器尝试下吧! 想要学习更多相关知识,请访问腾讯云云+社区。

参考文献:《Find Files in Linux, Using the Command Line》



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭